// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'
import BaseClass from '@api/base/model/DeviceDto'
import InfoClass from '@api/elemac/model/BaDeviceCurveReq'
import API from './API'

const WORD = '设备'
const dataList = Array(25).fill(0)
const xData = dataList.map((_, i) => `0${i}:00`.slice(-5))

// ============================== 导出状态集 ============================== //

export default {
  // —————————————————————————————— 常量状态 —————————————————————————————— //

  /**
   * 接口
   */
  API: {
    MENU: ['__详情__', WORD], // 菜单
    ...API,
  },

  /**
   * 映射
   */
  MAP: {
    // 词语
    WORD,

    // 必须的字段，有值才会显示弹窗
    REQUIRED_KEY: 'id',

    // 提示强制用词语生成
    tipForceWord: true,

    // 弹窗属性
    MODEL_PROPS: {
      title: `${WORD}详情`,
      large: true,
      bgClose: true,
      noFooter: true,
    },
  },

  /**
   * 字典
   */
  DICT: {
    /**
     * 状态
     */
    STATUS: [
      [1, '正常', '', '绿', 'run'],
      [2, '故障', '', '红', 'stop'],
    ],
  },

  /**
   * 首要开关
   *
   * 1. 初始化完成时调用
   * 2. 提交后刷新时调用
   */
  MAIN_START: 'startOne', // 'startInfo' 或 'startList' 或 'startOne' 或 ''

  /**
   * 初始单项
   *
   * 1. 初始存在，才能响应
   * 2. setOne() 合并时使用
   * 3. openAdd() 新增时使用
   */
  INIT_ONE: CORE.initObj(BaseClass, {
    deviceId: undefined, // 设备反控的设备ID
    tag: undefined, // 设备反控的点位 code
    yxztValue: undefined, // 运行状态数值
    gzztValue: undefined, // 故障状态数值
    sbqtValue: undefined, // 启停状态数值
  }),

  /**
   * 初始信息参数
   *
   * 1. 初始存在，才能响应
   * 2. CORE.mixStore(store) 时使用
   * 3. setInfoParam() 重置时使用
   */
  INIT_INFO_PARAM: CORE.initObj(InfoClass, {
    startTime: CORE.timeNum(CORE.today()), // 今天 00:00:00
    endTime: CORE.timeNum(CORE.today(1), -1), // 今天 23:59:59
  }),

  /**
   * 初始信息
   *
   * 1. 初始存在，才能响应
   * 2. setInfo() 合并时使用
   */
  INIT_INFO: {
    xData,
    dataList,
  },
}
